Notes

Limits

     The maximum number of messages that can be in the system at any one time is 200.

     Only one copy of Notify may be installed at a time, but see the Copy Notify chapter.

     In order to be used by Notify, sounds must either be installed in the System file or made generally available through utilities such as Suitcase.

     Note that if Notify has trouble at system startup time, it will display one of the following icons:

     The first icon means that Notify could not find the Macintosh Notification Manager, upon which it depends for scheduling message displays.  The manager should be present in System 6.0 and all subsequent systems.
     The second icon means that the alarm data in the Notify file has been corrupted or erased somehow.  Sorry.  Was it backed up?  It can also mean that the Notify control panel file was locked; make sure it is unlocked.
     The third icon means that the Notify driver could not be loaded.  The most likely reason for this is that another Notify driver is already loaded, but it can mean that too many drivers have already been loaded (unlikely), or that the driver or one of its resources has been removed from the Notify file.

Notes to hackers

     Source code available to registered users who want it.  Make a note on the Shareware Registration Form and throw in a dollar extra, and I will send you a disk.  (Note that you cannot do this via CompuServe SWREG.)

     Also, it is fairly easy for any program to install and track alarms in Notify.  Contact me if interested.

     For people who enjoy hacking ResEdit or Resorcerer, there are several things that can be customized without breaking Notify:
1)  Edit DLOG/DITL -4050 to rearrange the notification alert.  You can move or resize any item, but you cannot remove any, nor can you add anything other than static text.
2)  Edit MENU -4049 to put your own favorite time intervals into the Auto-cancel/Snooze pop-up.  The last two items must be a dividing line and “Never”; all other items must begin with a number (additional text is ignored).
3)  Who knows?

Update History

1.0  Original.  (Lightspeed C 3.0)

1.1  Worked some bugs out.  (Lightspeed C 3.0)

1.2  Moved from 7-crashy to 7-friendly, including Balloon Help on Control Panel.  (Think C 4.0.5)

2.0  Added sounds, added Repeat menu, associated timeouts with individual messages, restructured message scheduling so that it steals much less time.  First publicly released version.  (Think C 5.0)

2.0.1  Got Balloon Help working in the Message Editor.  (Think C 5.0.1)

2.1  Restructured message allocation so that it is much easier to change the maximum number of messages, now at 64.  Also pulled some things out of resources and into program data to cut down on system heap usage.  Built Copy Notify utility application.  (Think C 5.0.1)

2.1.1  Fixed the delay so that Notify will be touched every five minutes.  (Think C 5.0.1)

2.1.2  Invoked International Utilities for handling dates and times in accordance to local preferences.  Also fixed two bugs:  a) deleting the last message in the file could cause an end-of-file error later; b) display update sometimes got Address Error bomb on 68000 Macs.  [Hey, I’ve only had 020’s and 030’s for five years!  No such animal as Address Error.]  (Think C 5.0.2)

2.2  Added Save defaults checkbox to Message Editor.  Also, fixed a problem with preferences sometimes not being saved.  (Think C 5.0.2)

2.3  Added Preferences dialog.  Moved the startup icon checkbox from the main display to the new dialog.  [This version never published.]  (Think C 5.0.2)

3.0  Added auto-cancel and multiple repeat intervals.  Also added standalone capability to the control panel to be able to read and write alarms in the absence of the driver.  Rewrote entire control panel using OOP in order to simplify possible future expansion.  (Think C 5.0.3)

3.0.1  Fixed a handle-locking problem that caused intermittent crashes.  (Think C 5.0.3)

3.0.2  Fixed a bug that caused crashes when dismissing the Message Editor dialog in System 6.  (Think C 5.0.3)

3.0.3  Messages to be displayed at boot time have sometimes been removed from the Notification Manager queue before the boot process has advanced enough to display alerts.  Therefore, changed the driver startup so that overdue messages are not triggered until the Finder is ready.  (Think C 5.0.3)

3.0.4  a) When a message is automatically rescheduled, write the file but restore the modification date back to what it was before the write.  If a message is deleted or the user makes the modification manually, allow the date to be changed as usual.  This was done at the request of a user who wished to be able to compare mod dates of two different Notify files to determine which should update the other.  b) Fixed the bug in Copy Notify that crashed System 7 Finder when uninstalling existing Notify.  (Think C 5.0.4)

3.0.5  Added color icon support.  (Think C 5.0.4)

4.0  a) Nailed that one-minute auto-cancel bug.  b) Discarded the multiple repeat intervals of 3.0.x in favor of advance alarms.  c) Use my own window instead of the Notification Mgr’s, which not only means that I can have a Snooze button, but also that I can hack a way for the front process to get time behind me.  d) Allow any number of minutes on auto-cancel, instead of being fixed to the pop-up menu. [Also applies to Snooze.]  e) Added some cute keystroke shortcuts to the message editor.  f) Added an explicit “hourly” choice to the message editor Repeat pop-up.  g) Bumped message count maximum up to 200.  (Think C 6.0.1)

4.0.1  a) Interesting bug: The front application can quit behind the notification alert, and takes the alert window with it.  Patched ExitToShell to test for that and attempt to re-post message in next front process.  b) Since Copy Notify closes the driver, the trap patches become invalid.  Fixed Copy Notify to re-lock the driver immediately after closing.  (Think C 6.0.1)

4.0.2  Prevent applications from putting windows in front of a notification alert.  If a window tries to go in front, it will actually go just behind the alert.  (Think C 6.0.1)

4.0.3  a) 4.0.2 had problems with some applications depending on the fact that they "knew" they had put a window in the front.  Now allow windows to go in front of alert, but clicking in alert brings it to the front and makes it modal again.  b) Fixed a bug that bit when there were more than 128 messages.  (Think C 6.0.1)

4.0.4  Previous 4.0.x versions would hang at INIT time if there was a message with a non-repeating primary event but with advance notices, and the Notify INIT happened to run after the last advance notice time but before the primary event time.  This has been fixed.  (Think C 6.0.1)